/**
 * Created by Administrator on 2016/10/20.
 */
$(function(){
    // VerifyAjax=true;
});


$.ajaxUrl = function(options){
    var defaults = {
        layer:false,
        url:false,
        data:{},
        async:true,
        is_load:true,
        tishi:'加载中',
        message:'',
        is_message:false,
        jumpurl:false,
        datafun:false,
        isallresult:false,
        completefun:false,
        isVerifyLogin:false,
        btn:false
    };
    $.extend(defaults,options);
    var layer=defaults.layer;
    if(!layer){
        alert('需要引用layer');
        return false
    }
    var url=defaults.url;
    if(!url){
        alert('请输入请求链接');
        return false
    }
    if(defaults.btn){
        var btnText='';
    }
    $.ajax({
        url:url,
        type:'post',
        data:defaults.data,
        dataType:'json',
        async:defaults.async,
        beforeSend:function(){
            if(defaults.is_load){
                cc=layer.msg(defaults.tishi, {time:0,offset:'300px',icon: 16,skin:'layui-layer-ajaxsubmits layui-layer-hui'});
            }
            if(defaults.btn){
                $(defaults.btn).attr('disabled',true)
                $(defaults.btn).css("pointer-events","none");
                btnText=$(defaults.btn).text();
                $(defaults.btn).text('数据提交中');
                $(defaults.btn).css('background','gray');
            }
        },
        success:function(result){
            if(defaults.isVerifyLogin){
                if(!VerifyLogin(result.loginCode)){
                    return false;
                }
            }
            if(!defaults.isallresult) {
                if (result.code == 0) {
                    layer.msg(result.message, {icon: 2});
                    return false;
                }
                var data=result.data;
                if(!defaults.datafun){
                    layer.msg(data.message,{
                        time: 2000 //不自动关闭
                        ,offset:'300px'
                        ,icon:1
                        //,shade:0.7
                    },function(index, layero){ //或者使用btn1
                        if(!defaults.jumpurl){
                            location.reload();
                        }else{
                            location.href=defaults.jumpurl;
                        }
                    });
                }else{
                    if(defaults.is_message){
                        layer.msg(defaults.message,{
                            time: 2000 //不自动关闭
                            ,offset:'300px'
                            ,icon:1
                            //,shade:0.7
                        },function(index, layero){ //或者使用btn1
                            defaults.datafun(data);
                        });
                    }else{
                        defaults.datafun(data);
                    }
                }
            }else{
                defaults.datafun(result);
            }
        },
        complete:function(){

            if(defaults.is_load){
                layer.close(cc);
                if(defaults.completefun){
                    defaults.completefun();
                }
            }
            if(defaults.btn){
                $(defaults.btn).attr('disabled',false)
                $(defaults.btn).css("pointer-events","auto");
                $(defaults.btn).text(btnText);
                $(defaults.btn).css('background','');
                console.log( $(defaults.btn));
            }
        }
    });
};


$.ajaxApiUrl = function(options){
    var LoginTokenName=$.cookie('VipLoginToken');
    var defaults = {
        layer:false,
        url:false,
        data:{},
        async:true,
        is_load:true,
        tishi:'加载中',
        message:'保存成功',
        is_message:false,
        jumpurl:false,
        datafun:'1',
        isallresult:false,
        completefun:false,
        isVerifyLogin:true,
        btn:false
    };
    $.extend(defaults,options);
    defaults.data.token=LoginTokenName;
    $.ajaxUrl(defaults);
};



(function(){
    $.extend({
        //信息弹框
        layer_type_0:function(options){
            var defaults = {
                layer:false,
                title:'标题',
                area:'auto',
                maxWidth:700,
                content: '这里输入内容哦！',
                isbtn:false,
                btn:['确定','取消'],
                skin:false,
                offset:'10%',
                fixed: true,
                icon: 0,
                closeBtn:1,
                yes: function(index, layero){
                    layer.close(index); //如果设定了yes回调，需进行手工关闭
                },
                id:''
            };
            $.extend(defaults,options);
            var content="<div style='padding: 10px;'>"+ defaults.content+"</div>";
            //$is
            if(defaults.isbtn){

            }
            var layer=defaults.layer;
            return layer.open({
                type:0,
                title:defaults.title,
                shadeClose: false,
                shade: 0.8,
                area:defaults.area,
                maxWidth:defaults.maxWidth,
                content: content,
                btn: defaults.isbtn?defaults.btn:false,
                btnAlign: 'c',
                yes:defaults.yes,
                skin:defaults.skin,
                id:defaults.id,
                offset:defaults.offset,
                fixed:defaults.fixed,
                icon:defaults.icon,
                closeBtn:defaults.closeBtn
            });
        },


        //普通弹框
        layer_type_1:function(options){
            var defaults = {
                layer:false,
                title:'标题',
                area:'auto',
                maxWidth:700,
                content: '这里输入内容哦！',
                isbtn:false,
                btn:['确定','取消'],
                skin:false,
                offset:'5%',
                fixed: true,
                maxmin:false,
                closeBtn:1,
                yes: function(index, layero){
                    layer.close(index); //如果设定了yes回调，需进行手工关闭
                },
                id:''
            };
            $.extend(defaults,options);
            var content="<div class='padding-10'>"+ defaults.content+"</div>";
            //$is
            if(defaults.isbtn){

            }
            var layer=defaults.layer;
            return layer.open({
                type:1,
                title:defaults.title,
                shadeClose: true,
                shade: 0.8,
                area:defaults.area,
                maxWidth:defaults.maxWidth,
                content: content,
                btn: defaults.isbtn?defaults.btn:false,
                btnAlign: 'c',
                yes:defaults.yes,
                skin:defaults.skin,
                id:defaults.id,
                offset:defaults.offset,
                fixed:defaults.fixed,
                maxmin:defaults.maxmin,
                closeBtn:defaults.closeBtn
            });
        },

        //iframe弹框
        layer_type_2:function(options){
            var defaults = {
                layer:layer,
                title:'这是网页标题',
                area:['800px','480px'],
                maxWidth:700,
                url: false,
                offset:'5%',
                closeBtn:1
            };
            $.extend(defaults,options);
            if(!defaults.url){
                return false;
            }
            var layer=defaults.layer;
            return layer.open({
                type:2,
                title:defaults.title,
                shadeClose: true,
                shade: 0.8,
                area:defaults.area,
                maxWidth:defaults.maxWidth,
                content: defaults.url,
                offset: defaults.offset,
                closeBtn:defaults.closeBtn

            });
        },

        layui_upload_image:function(options){
            var defaults = {
                layer:false,
                title:'上传图片',
                url:false,
                method:'post',
                input_name:false
                ,before:function(){

                }
                ,success: function(res){
                    $('[name="'+defaults.input_name+'"]').val(res.data.path);
                }
            };
            $.extend(defaults,options);
            layui.upload({
                title:defaults.title
                ,url:defaults.url
                ,ext: 'jpg|png|gif'
                ,before:defaults.before
                ,success:defaults.success
            });
        },


        layui_laypage:function(options){
            var defaults = {
                laypage:false,
                cont:'page',
                pages:0,
                curr:1,
                count:0,
                // skip:false,
                jump:function(obj, first){
                    //得到了当前页，用于向服务端请求对应数据
                    var curr = obj.curr;
                }
            };
            $.extend(defaults,options);
            defaults.laypage({
                cont: defaults.cont
                ,pages:  defaults.pages //总页数
                // ,first: 1
                // ,last: defaults.pages
                ,curr:defaults.curr
                ,skin: '#1E9FFF'
                // ,skip: defaults.skip
                ,count:defaults.count
                //,jump: function(obj, first){
                //
                //}
                ,jump: defaults.jump
            });
        },


        layer_tishi:function(options){
            var defaults = {
                layer:false,
                Message:'请注意！',
                shadeClose:false,
                shade:0.8,
                time:0,
                btn:['确定'],
                url:false,
                icon:9,
            };
            $.extend(defaults,options);
            var layer=defaults.layer;
            layer.msg(defaults.Message, {
                time:defaults.time,
                shadeClose: defaults.shadeClose,
                shade: defaults.shade,
                icon:  defaults.icon,
                btn:defaults.btn,
                btnAlign: 'c',
                yes:function(index){
                    if(defaults.url){
                        location.href=defaults.url;
                    }
                    layer.close(index);

                }
            });
        },
        /**
         * 全选
         * @param options
         */
        layer_allchecked:function(options){
            var defaults = {
                layui_form:false,
                allchecked:'allchecked',
                checked:'checked',
            };
            $.extend(defaults,options);

            var layui_form=defaults.layui_form;
            var allchecked=defaults.allchecked;
            var checked=defaults.checked;

            //全选
            layui_form.on('checkbox('+allchecked+')', function(data){
                allcheckfun(allchecked,data.elem.checked);
            });
            layui_form.on('checkbox('+checked+')', function(data){
                allcheckfun(checked,data.elem.checked);
            });
            allcheckfun(allchecked);
            function allcheckfun(click_elem,elem_checked){
                //click_elem被点击对象
                if(click_elem==allchecked){
                    if(elem_checked){
                        $('[data_c="'+checked+'"]').prop('checked',true);
                        $('[data_c="'+allchecked+'"]').prop('checked',true);
                    }else{
                        $('[data_c="'+checked+'"]').prop('checked',false);
                        $('[data_c="'+allchecked+'"]').prop('checked',false);
                    }
                }else{
                    var _checked=true;
                    $('[data_c="'+checked+'"]').each(function(){
                        if(!$(this).is(':checked')){
                            _checked=false;
                            return false;
                        }
                    });

                    $('[data_c="'+allchecked+'"]').prop('checked',_checked);
                }
                layui_form.render();
            }
        },

        layui_verify:function(options){
            var defaults = {
                layui_form:false,
                open_verify:['Num_GT_0'],
            };
            $.extend(defaults,options);
            var layui_form=defaults.layui_form;
            var open_verify=defaults.open_verify;
            var data={};
            for(var i in open_verify){
                var open_str=open_verify[i];
                //var func=$[open_str];
                data[open_str]= $[open_str];
            }
            //前台验证
            layui_form.verify(data);
        },
        Num_GT_0: function(value){
            if(!(value>0)){
                return '数字要大于0';
            }
        }
    })
})(jQuery);



//api删除插件写法
$.fn.ajaxApiDel=function(options,datafun){
    var defaults = {
        layer:false,
        url:false,
        data_id:'data_id',
        confirmMsg:'确定要删除么？删除后将无法恢复',
        deleteMsg:'删除成功',

    };
    $.extend(defaults,options);
    var layer=defaults.layer;
    $(this).click(function(){
        var data_id=$(this).attr(defaults.data_id);
        layer.confirm(defaults.confirmMsg, {icon: 3, title:'提示'}, function(index){
            $.ajaxApiUrl({
                layer:layer,
                url:defaults.url,
                data:{id:data_id},
                async:false,
                is_load:false,
                is_message:true,
                message:defaults.deleteMsg,
                datafun:function(data){
                    datafun(data);
                    layer.close(index);
                }
            });
        })
    });

};




//时间格式化扩展
Date.prototype.Format = function(format){

    var o = {

        "M+" : this.getMonth()+1, //month

        "d+" : this.getDate(), //day

        "h+" : this.getHours(), //hour

        "m+" : this.getMinutes(), //minute

        "s+" : this.getSeconds(), //second

        "q+" : Math.floor((this.getMonth()+3)/3), //quarter

        "S" : this.getMilliseconds() //millisecond

    }

    if(/(y+)/.test(format)) {

        format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));

    }

    for(var k in o) {

        if(new RegExp("("+ k +")").test(format)) {

            format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));

        }

    }

    return format;

}


function VerifyLogin(loginCode){
    if(loginCode != 1){
        layer.alert('没有登录', {icon: 2,title:false,closeBtn:0},function(){
            top.location.href=LoginView;
        });
        return false;
    }else{
        return true
    }

}

/**
 * 生成树形方法
 * @param treeData
 * @param key
 * @param fieldById
 * @param fieldByName
 * @returns {Array}
 */
function getTreeChild(treeData,key,fieldById,fieldByName,fieldByCount,isAll){
    if(!fieldById){
        fieldById='id';
    }
    if(!fieldByName){
        fieldByName='name';
    }
    var _Data=treeData[key];
    // console.log(_Data);
    var DataList=[];
    if(key==0&&!isAll){
        var DataInfo={};
        DataInfo.id=0;
        DataInfo.name='全部分类';
        DataInfo.spread=false;
        DataList.push(DataInfo);
    }
    for(var i in _Data){
        var DataInfo={};
        var _DataInfo=_Data[i];
        DataInfo.id=_DataInfo[fieldById];
        DataInfo.name=_DataInfo[fieldByName];
        DataInfo.children=_DataInfo['goods_list'];
        DataInfo.is_goods=_DataInfo['is_goods'];
        if(fieldByCount&&_DataInfo[fieldByCount]){
            DataInfo.name+='[<span style="color:red">'+_DataInfo[fieldByCount]+'</span>]';
        }
        if(_DataInfo.status=='停用中'){
            DataInfo.name+='<span style="color:red">停</span>';
        }
        if(key==0){
            DataInfo.spread=false;
        }
        if(treeData[DataInfo.id]){
            DataInfo.children=getTreeChild(treeData,DataInfo.id,fieldById,fieldByName,fieldByCount);
        }
        DataList.push(DataInfo);
    }
    return DataList;
}